<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>TFCMS: /home/reeko5k/www/tfcms/modules/formtypes.formgenerator.php Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">TFCMS
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('formtypes_8formgenerator_8php.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">/home/reeko5k/www/tfcms/modules/formtypes.formgenerator.php</div>  </div>
</div><!--header-->
<div class="contents">
<a href="formtypes_8formgenerator_8php.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 &lt;?php
<a name="l00002"></a>00002 
<a name="l00003"></a>00003 <span class="comment">/*</span>
<a name="l00004"></a>00004 <span class="comment">    formtypes.formgenerator.php</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">    This script is free software: you can redistribute it and/or modify</span>
<a name="l00007"></a>00007 <span class="comment">    it under the terms of the GNU General Public License as published by</span>
<a name="l00008"></a>00008 <span class="comment">    the Free Software Foundation, either version 3 of the License, or</span>
<a name="l00009"></a>00009 <span class="comment">    (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"></span>
<a name="l00011"></a>00011 <span class="comment">    This script is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00014"></a>00014 <span class="comment">    GNU General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment">    You should have received a copy of the GNU General Public License</span>
<a name="l00017"></a>00017 <span class="comment">    along with this script. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment">    http://www.truefusion.org/</span>
<a name="l00020"></a>00020 <span class="comment">*/</span>
<a name="l00021"></a>00021 
<a name="l00027"></a>00027 require_once <span class="stringliteral">&quot;fieldtypes.formgenerator.php&quot;</span>;
<a name="l00028"></a>00028 
<a name="l00029"></a><a class="code" href="class_abstract_html_form.html">00029</a> <span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_abstract_html_form.html">AbstractHtmlForm</a>
<a name="l00030"></a>00030         {
<a name="l00031"></a>00031                 <span class="keyword">private</span> $action; 
<a name="l00032"></a>00032                 <span class="keyword">private</span> $fields = array(); 
<a name="l00033"></a>00033 <span class="comment">//              private $formFooter;</span>
<a name="l00034"></a>00034 <span class="comment">//              private $formHeader;</span>
<a name="l00035"></a>00035                 <span class="keyword">private</span> $formId; 
<a name="l00036"></a>00036                 <span class="keyword">private</span> $formLayout; 
<a name="l00037"></a>00037                 <span class="keyword">private</span> $formName; 
<a name="l00038"></a>00038                 <span class="keyword">private</span> $method = <span class="stringliteral">&quot;post&quot;</span>; 
<a name="l00039"></a>00039                 <span class="keyword">private</span> $enctype;
<a name="l00040"></a>00040 
<a name="l00041"></a><a class="code" href="class_abstract_html_form.html#a269d5828259282d985bc517b484c0f26">00041</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a269d5828259282d985bc517b484c0f26">__construct</a>($name = <span class="stringliteral">&quot;htmlform&quot;</span>,
<a name="l00042"></a>00042                                                          $method = <span class="stringliteral">&quot;post&quot;</span>,
<a name="l00043"></a>00043                                                          $action = NULL)
<a name="l00044"></a>00044                         {
<a name="l00045"></a>00045                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#ac4cafdb7367c73f334e9366172c50aa0">setFormName</a>($name);
<a name="l00046"></a>00046                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a643c65610f8b3179a8c147cab7cbb652" title="Set the method for the form.">setMethod</a>($method);
<a name="l00047"></a>00047                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a6daa674cb12ca6f22ce2d3c729be4da1">setAction</a>($action);
<a name="l00048"></a>00048                         }
<a name="l00049"></a>00049 
<a name="l00050"></a><a class="code" href="class_abstract_html_form.html#a189a4abe5faf11f4320d5d3f1d3d1715">00050</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a189a4abe5faf11f4320d5d3f1d3d1715">getAction</a>()
<a name="l00051"></a>00051                         {
<a name="l00052"></a>00052                                 <span class="keywordflow">return</span> $this-&gt;action;
<a name="l00053"></a>00053                         }
<a name="l00054"></a>00054 
<a name="l00063"></a><a class="code" href="class_abstract_html_form.html#a6daa674cb12ca6f22ce2d3c729be4da1">00063</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a6daa674cb12ca6f22ce2d3c729be4da1">setAction</a>($url)
<a name="l00064"></a>00064                         {
<a name="l00065"></a>00065                                 $this-&gt;action = (string) $url;
<a name="l00066"></a>00066                         }
<a name="l00067"></a>00067 
<a name="l00068"></a><a class="code" href="class_abstract_html_form.html#a5d5bd3618f30821a2e4d47904bc953df">00068</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a5d5bd3618f30821a2e4d47904bc953df">getEncType</a>()
<a name="l00069"></a>00069                         {
<a name="l00070"></a>00070                                 <span class="keywordflow">return</span> $this-&gt;enctype;
<a name="l00071"></a>00071                         }
<a name="l00072"></a>00072 
<a name="l00073"></a><a class="code" href="class_abstract_html_form.html#a4f158371853245ed5aa13f41f767e053">00073</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a4f158371853245ed5aa13f41f767e053">setEncType</a>($type)
<a name="l00074"></a>00074                         {
<a name="l00075"></a>00075                                 $this-&gt;enctype = (string) $type;
<a name="l00076"></a>00076                         }
<a name="l00077"></a>00077 
<a name="l00078"></a><a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">00078</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>(<a class="code" href="class_input_field.html">InputField</a> $field)
<a name="l00079"></a>00079                         {
<a name="l00080"></a>00080                                 $this-&gt;fields[] = $field;
<a name="l00081"></a>00081                         }
<a name="l00082"></a>00082 
<a name="l00083"></a><a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">00083</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">getFields</a>()
<a name="l00084"></a>00084                         {
<a name="l00085"></a>00085                                 <span class="keywordflow">return</span> $this-&gt;fields;
<a name="l00086"></a>00086                         }
<a name="l00087"></a>00087 
<a name="l00088"></a><a class="code" href="class_abstract_html_form.html#a70ca4d03d1f0a9f0bfd9744a38484e73">00088</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a70ca4d03d1f0a9f0bfd9744a38484e73">getFieldNames</a>($getActualNames = <span class="keyword">false</span>)
<a name="l00089"></a>00089                 {
<a name="l00090"></a>00090                         $names = array();
<a name="l00091"></a>00091 
<a name="l00092"></a>00092                         <span class="keywordflow">foreach</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">getFields</a>() as $field)
<a name="l00093"></a>00093                         {
<a name="l00094"></a>00094                                 <span class="keywordflow">if</span> ($getActualNames)
<a name="l00095"></a>00095                                         $names[] = $field-&gt;getActualName();
<a name="l00096"></a>00096                                 <span class="keywordflow">else</span>
<a name="l00097"></a>00097                                         $names[] = $field-&gt;getName();
<a name="l00098"></a>00098                         }
<a name="l00099"></a>00099 
<a name="l00100"></a>00100                         <span class="keywordflow">return</span> array_unique($names);
<a name="l00101"></a>00101                 }
<a name="l00102"></a>00102 
<a name="l00103"></a>00103                 <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>();
<a name="l00104"></a>00104 
<a name="l00105"></a><a class="code" href="class_abstract_html_form.html#aec8caa38c3589796d01a5739d96b6e20">00105</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#aec8caa38c3589796d01a5739d96b6e20">getFormId</a>()
<a name="l00106"></a>00106                         {
<a name="l00107"></a>00107                                 <span class="keywordflow">return</span> $this-&gt;formId;
<a name="l00108"></a>00108                         }
<a name="l00109"></a>00109 
<a name="l00110"></a><a class="code" href="class_abstract_html_form.html#aa822fe0868485133c40f78bd9ef786d5">00110</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#aa822fe0868485133c40f78bd9ef786d5">setFormId</a>($id)
<a name="l00111"></a>00111                         {
<a name="l00112"></a>00112                                 $this-&gt;formId = (string) $id;
<a name="l00113"></a>00113                         }
<a name="l00114"></a>00114 
<a name="l00115"></a>00115                 <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>();
<a name="l00116"></a>00116 
<a name="l00117"></a><a class="code" href="class_abstract_html_form.html#a69456610df7e91a761aa32ec907f7ba2">00117</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a69456610df7e91a761aa32ec907f7ba2">setFormLayout</a>($layout)
<a name="l00118"></a>00118                         {
<a name="l00119"></a>00119                                 $this-&gt;formLayout = (string) $layout;
<a name="l00120"></a>00120                         }
<a name="l00121"></a>00121 
<a name="l00122"></a><a class="code" href="class_abstract_html_form.html#a9b40f68bfa0be5036e7be211f84dc8c2">00122</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a9b40f68bfa0be5036e7be211f84dc8c2">getFormName</a>()
<a name="l00123"></a>00123                         {
<a name="l00124"></a>00124                                 <span class="keywordflow">return</span> $this-&gt;formName;
<a name="l00125"></a>00125                         }
<a name="l00126"></a>00126 
<a name="l00127"></a><a class="code" href="class_abstract_html_form.html#ac4cafdb7367c73f334e9366172c50aa0">00127</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#ac4cafdb7367c73f334e9366172c50aa0">setFormName</a>($name)
<a name="l00128"></a>00128                         {
<a name="l00129"></a>00129                                 $this-&gt;formName = (string) $name;
<a name="l00130"></a>00130                         }
<a name="l00131"></a>00131 
<a name="l00138"></a><a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5">00138</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>()
<a name="l00139"></a>00139                         {
<a name="l00140"></a>00140                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">getMethod</a>() == <span class="stringliteral">&quot;post&quot;</span>)
<a name="l00141"></a>00141                                         <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>) (array_intersect($this-&gt;<a class="code" href="class_abstract_html_form.html#a70ca4d03d1f0a9f0bfd9744a38484e73">getFieldNames</a>($true), array_keys($_POST)));
<a name="l00142"></a>00142 
<a name="l00143"></a>00143                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">getMethod</a>() == <span class="stringliteral">&quot;get&quot;</span>)
<a name="l00144"></a>00144                                         <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>) (array_intersect($this-&gt;<a class="code" href="class_abstract_html_form.html#a70ca4d03d1f0a9f0bfd9744a38484e73">getFieldNames</a>($true), array_keys($_GET)));
<a name="l00145"></a>00145                         }
<a name="l00146"></a>00146 
<a name="l00151"></a>00151                 <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>();
<a name="l00152"></a>00152 
<a name="l00153"></a><a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">00153</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">getMethod</a>()
<a name="l00154"></a>00154                         {
<a name="l00155"></a>00155                                 <span class="keywordflow">return</span> $this-&gt;method;
<a name="l00156"></a>00156                         }
<a name="l00157"></a>00157 
<a name="l00165"></a><a class="code" href="class_abstract_html_form.html#a643c65610f8b3179a8c147cab7cbb652">00165</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a643c65610f8b3179a8c147cab7cbb652" title="Set the method for the form.">setMethod</a>($method)
<a name="l00166"></a>00166                         {
<a name="l00167"></a>00167                                 <span class="keywordflow">if</span> ($method)
<a name="l00168"></a>00168                                         $this-&gt;method = $method;
<a name="l00169"></a>00169                         }
<a name="l00170"></a>00170 
<a name="l00171"></a><a class="code" href="class_abstract_html_form.html#a0683eb2bc0783fd8730e712998392887">00171</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a0683eb2bc0783fd8730e712998392887">renderHtmlForm</a>()
<a name="l00172"></a>00172                         {
<a name="l00173"></a>00173                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9" title="Executes each field&#39;s verification methods.">validateFields</a>()
<a name="l00174"></a>00174                                         &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00175"></a>00175                                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>();
<a name="l00176"></a>00176 
<a name="l00177"></a>00177                                 <span class="keywordflow">else</span>
<a name="l00178"></a>00178                                 {
<a name="l00179"></a>00179                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">renderFormBegin</a>();
<a name="l00180"></a>00180                                         echo <span class="stringliteral">&quot;&lt;table&gt;\n&quot;</span>;
<a name="l00181"></a>00181                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00182"></a>00182                                         echo <span class="stringliteral">&quot;&lt;th colspan=\&quot;2\&quot;&gt;&quot;</span>;
<a name="l00183"></a>00183                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>();
<a name="l00184"></a>00184                                         echo <span class="stringliteral">&quot;&lt;/th&gt;&quot;</span>;
<a name="l00185"></a>00185                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00186"></a>00186                                         <span class="keywordflow">foreach</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">getFields</a>() as $field)
<a name="l00187"></a>00187                                         {
<a name="l00188"></a>00188                                                 <span class="keywordflow">if</span> (is_subclass_of($field, <span class="stringliteral">&quot;ButtonInput&quot;</span>))
<a name="l00189"></a>00189                                                         <span class="keywordflow">continue</span>;
<a name="l00190"></a>00190 
<a name="l00191"></a>00191                                                 echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00192"></a>00192                                                 echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00193"></a>00193                                                 $field-&gt;renderLabel();
<a name="l00194"></a>00194                                                 echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00195"></a>00195                                                 echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00196"></a>00196                                                 $field-&gt;renderField();
<a name="l00197"></a>00197                                                 <span class="keywordflow">if</span> ($field-&gt;hasErrors()
<a name="l00198"></a>00198                                                         &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00199"></a>00199                                                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>($field);
<a name="l00200"></a>00200                                                 echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00201"></a>00201                                                 echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00202"></a>00202                                         }
<a name="l00203"></a>00203                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00204"></a>00204                                         echo <span class="stringliteral">&quot;&lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;\n&quot;</span>;
<a name="l00205"></a>00205                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>();
<a name="l00206"></a>00206                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00207"></a>00207                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00208"></a>00208                                         echo <span class="stringliteral">&quot;&lt;/table&gt;\n&quot;</span>;
<a name="l00209"></a>00209                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">renderFormEnd</a>();
<a name="l00210"></a>00210                                 }
<a name="l00211"></a>00211                         }
<a name="l00212"></a>00212 
<a name="l00220"></a><a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9">00220</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9" title="Executes each field&#39;s verification methods.">validateFields</a>()
<a name="l00221"></a>00221                         {
<a name="l00222"></a>00222                                 $bool = <span class="keyword">true</span>;
<a name="l00223"></a>00223 
<a name="l00224"></a>00224                                 <span class="keywordflow">foreach</span>($this-&gt;<a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">getFields</a>() as $field)
<a name="l00225"></a>00225                                 {
<a name="l00226"></a>00226                                         <span class="keywordflow">if</span> ($field-&gt;getValue() == <span class="stringliteral">&quot;&quot;</span> <span class="comment">// See note above.</span>
<a name="l00227"></a>00227                                                 &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">getMethod</a>() == <span class="stringliteral">&quot;post&quot;</span>)
<a name="l00228"></a>00228                                                         $field-&gt;setValue($_POST[$field-&gt;getActualName()]);
<a name="l00229"></a>00229 
<a name="l00230"></a>00230                                         <span class="keywordflow">if</span> ($field-&gt;getValue() == <span class="stringliteral">&quot;&quot;</span>
<a name="l00231"></a>00231                                                 &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#af3e37e1a6ed9b8c87f86f659873a83b7">getMethod</a>() == <span class="stringliteral">&quot;get&quot;</span>)
<a name="l00232"></a>00232                                                         $field-&gt;setValue($_GET[$field-&gt;getActualName()]);
<a name="l00233"></a>00233 
<a name="l00234"></a>00234                                         <span class="keywordflow">if</span> (!$field-&gt;verifyData())
<a name="l00235"></a>00235                                                 $bool = <span class="keyword">false</span>;
<a name="l00236"></a>00236                                 }
<a name="l00237"></a>00237 
<a name="l00238"></a>00238                                 <span class="keywordflow">return</span> $bool;
<a name="l00239"></a>00239                         }
<a name="l00240"></a>00240 
<a name="l00241"></a><a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">00241</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>(<a class="code" href="class_input_field.html">InputField</a> $field)
<a name="l00242"></a>00242                         {
<a name="l00243"></a>00243                                 echo <span class="stringliteral">&quot;&lt;ul class=\&quot;form_errors\&quot;&gt;\n&quot;</span>;
<a name="l00244"></a>00244                                 <span class="keywordflow">foreach</span> ($field-&gt;<a class="code" href="class_input_field.html#a6e548ebf2656742bfd19939ead923ed2">getErrors</a>() as $error)
<a name="l00245"></a>00245                                         echo <span class="stringliteral">&quot;&lt;li&gt;$error&lt;/li&gt;\n&quot;</span>;
<a name="l00246"></a>00246                                 echo <span class="stringliteral">&quot;&lt;/ul&gt;\n&quot;</span>;
<a name="l00247"></a>00247                         }
<a name="l00248"></a>00248 
<a name="l00249"></a><a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">00249</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">renderFormBegin</a>()
<a name="l00250"></a>00250                         {
<a name="l00251"></a>00251                                 echo <span class="stringliteral">&quot;&lt;form&quot;</span>;
<a name="l00252"></a>00252 
<a name="l00253"></a>00253                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#a9b40f68bfa0be5036e7be211f84dc8c2">getFormName</a>())
<a name="l00254"></a>00254                                         echo <span class="stringliteral">&quot; name=\&quot;&quot;</span>.$this-&gt;getFormName().<span class="stringliteral">&quot;\&quot;&quot;</span>;
<a name="l00255"></a>00255 
<a name="l00256"></a>00256                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#aec8caa38c3589796d01a5739d96b6e20">getFormId</a>())
<a name="l00257"></a>00257                                         echo <span class="stringliteral">&quot; id=\&quot;&quot;</span>.$this-&gt;getFormId().<span class="stringliteral">&quot;\&quot;&quot;</span>;
<a name="l00258"></a>00258 
<a name="l00259"></a>00259                                 echo <span class="stringliteral">&quot; method=\&quot;&quot;</span>.$this-&gt;getMethod().<span class="stringliteral">&quot;\&quot; action=\&quot;&quot;</span>.$this-&gt;<a class="code" href="class_abstract_html_form.html#a189a4abe5faf11f4320d5d3f1d3d1715">getAction</a>().<span class="stringliteral">&quot;\&quot;&quot;</span>;
<a name="l00260"></a>00260 
<a name="l00261"></a>00261                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#a5d5bd3618f30821a2e4d47904bc953df">getEncType</a>())
<a name="l00262"></a>00262                                         echo <span class="stringliteral">&quot; enctype=\&quot;&quot;</span>.$this-&gt;getEncType().<span class="stringliteral">&quot;\&quot;&quot;</span>;
<a name="l00263"></a>00263 
<a name="l00264"></a>00264                                 echo <span class="stringliteral">&quot;&gt;\n&quot;</span>;
<a name="l00265"></a>00265                         }
<a name="l00266"></a>00266 
<a name="l00267"></a><a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">00267</a>                 <span class="keyword">function</span> <a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">renderFormEnd</a>()
<a name="l00268"></a>00268                         {
<a name="l00269"></a>00269                                 echo <span class="stringliteral">&quot;&lt;/form&gt;\n&quot;</span>;
<a name="l00270"></a>00270                         }
<a name="l00271"></a>00271         }
<a name="l00272"></a>00272 
<a name="l00273"></a>00273 
<a name="l00274"></a><a class="code" href="class_contact_form.html">00274</a> <span class="keyword">class </span><a class="code" href="class_contact_form.html">ContactForm</a> <span class="keyword">extends</span> <a class="code" href="class_abstract_html_form.html">AbstractHtmlForm</a>
<a name="l00275"></a>00275         {
<a name="l00276"></a>00276                 <span class="keyword">private</span> $bodyField;
<a name="l00277"></a>00277                 <span class="keyword">private</span> $contactEmail;
<a name="l00278"></a>00278                 <span class="keyword">private</span> $email;
<a name="l00279"></a>00279                 <span class="keyword">private</span> $emailField;
<a name="l00280"></a>00280                 <span class="keyword">private</span> $emailSubject;
<a name="l00281"></a>00281                 <span class="keyword">private</span> $nameField;
<a name="l00282"></a>00282                 <span class="keyword">private</span> $resetBtn;
<a name="l00283"></a>00283                 <span class="keyword">private</span> $submitBtn;
<a name="l00284"></a>00284                 <span class="keyword">private</span> $thankYouText;
<a name="l00285"></a>00285 
<a name="l00286"></a><a class="code" href="class_contact_form.html#a957776b4a9a6dab9acf3893b4fb980d0">00286</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a957776b4a9a6dab9acf3893b4fb980d0">__construct</a>($name = <span class="stringliteral">&quot;contact_form&quot;</span>,
<a name="l00287"></a>00287                                                          $method = <span class="stringliteral">&quot;post&quot;</span>,
<a name="l00288"></a>00288                                                          $action = NULL)
<a name="l00289"></a>00289                         {
<a name="l00290"></a>00290                                 <a class="code" href="class_contact_form.html#a957776b4a9a6dab9acf3893b4fb980d0">parent::__construct</a>($name, $method, $action);
<a name="l00291"></a>00291 
<a name="l00292"></a>00292                                 $this-&gt;<a class="code" href="class_contact_form.html#a92eddc7d2a31598b8c5660d1d51d78bf">setThankYouText</a>(<span class="stringliteral">&quot;Thank you for your time; we will get in touch with you shortly.&quot;</span>);
<a name="l00293"></a>00293 
<a name="l00294"></a>00294                                 $this-&gt;nameField = <span class="keyword">new</span> <a class="code" href="class_text_input.html" title="TextInput constructor.">TextInput</a>(<span class="stringliteral">&quot;name&quot;</span>);
<a name="l00295"></a>00295                                 $this-&gt;nameField-&gt;setLabel(<span class="stringliteral">&quot;Name:&quot;</span>);
<a name="l00296"></a>00296                                 $this-&gt;nameField-&gt;setId(<span class="stringliteral">&quot;name_field&quot;</span>);
<a name="l00297"></a>00297                                 $this-&gt;nameField-&gt;addApplicableFilters(<span class="stringliteral">&quot;strip_tags&quot;</span>, <span class="stringliteral">&quot;htmlspecialchars&quot;</span>);
<a name="l00298"></a>00298                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($this-&gt;nameField);
<a name="l00299"></a>00299 
<a name="l00300"></a>00300                                 $this-&gt;emailField = <span class="keyword">new</span> <a class="code" href="class_text_input.html" title="TextInput constructor.">TextInput</a>(<span class="stringliteral">&quot;email&quot;</span>);
<a name="l00301"></a>00301                                 $this-&gt;emailField-&gt;setLabel(<span class="stringliteral">&quot;E-mail:&quot;</span>);
<a name="l00302"></a>00302                                 $this-&gt;emailField-&gt;setId(<span class="stringliteral">&quot;email_field&quot;</span>);
<a name="l00303"></a>00303                                 $this-&gt;emailField-&gt;setRegexFilter(<span class="stringliteral">&quot;/^[\w-]+@[\w-]+\.[\w-]{2,4}$/&quot;</span>);
<a name="l00304"></a>00304                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($this-&gt;emailField);
<a name="l00305"></a>00305 
<a name="l00306"></a>00306                                 $this-&gt;bodyField = <span class="keyword">new</span> <a class="code" href="class_text_area.html">TextArea</a>(<span class="stringliteral">&quot;body&quot;</span>);
<a name="l00307"></a>00307                                 $this-&gt;bodyField-&gt;setLabel(<span class="stringliteral">&quot;Message:&quot;</span>);
<a name="l00308"></a>00308                                 $this-&gt;bodyField-&gt;setId(<span class="stringliteral">&quot;body_field&quot;</span>);
<a name="l00309"></a>00309                                 $this-&gt;bodyField-&gt;addApplicableFilters(<span class="stringliteral">&quot;strip_tags&quot;</span>, <span class="stringliteral">&quot;htmlspecialchars&quot;</span>);
<a name="l00310"></a>00310                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($this-&gt;bodyField);
<a name="l00311"></a>00311 
<a name="l00312"></a>00312                                 <span class="comment">//      No need to add these, since they are accessible</span>
<a name="l00313"></a>00313                                 <span class="comment">//       internally and don&#39;t require verification.</span>
<a name="l00314"></a>00314                                 $this-&gt;resetBtn = <span class="keyword">new</span> <a class="code" href="class_reset_button_input.html">ResetButtonInput</a>;
<a name="l00315"></a>00315                                 $this-&gt;submitBtn = <span class="keyword">new</span> <a class="code" href="class_submit_button_input.html">SubmitButtonInput</a>;
<a name="l00316"></a>00316                         }
<a name="l00317"></a>00317 
<a name="l00318"></a><a class="code" href="class_contact_form.html#a349e30fba510419883ae407dce4775e1">00318</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a349e30fba510419883ae407dce4775e1">getContact</a>()
<a name="l00319"></a>00319                         {
<a name="l00320"></a>00320                                 <span class="keywordflow">return</span> $this-&gt;contactEmail;
<a name="l00321"></a>00321                         }
<a name="l00322"></a>00322 
<a name="l00323"></a><a class="code" href="class_contact_form.html#acfbd4934902ab9ccb47d1980057db178">00323</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#acfbd4934902ab9ccb47d1980057db178">setContact</a>($email)
<a name="l00324"></a>00324                         {
<a name="l00325"></a>00325                                 $this-&gt;contactEmail = (string) $email;
<a name="l00326"></a>00326                         }
<a name="l00327"></a>00327 
<a name="l00328"></a><a class="code" href="class_contact_form.html#ac91b5aa3ce2d40c869f79b6bcb73d2ac">00328</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#ac91b5aa3ce2d40c869f79b6bcb73d2ac">getEmailSubject</a>()
<a name="l00329"></a>00329                         {
<a name="l00330"></a>00330                                 <span class="keywordflow">return</span> $this-&gt;emailSubject;
<a name="l00331"></a>00331                         }
<a name="l00332"></a>00332 
<a name="l00333"></a><a class="code" href="class_contact_form.html#ab20ce6079700ed8c24e16e7db29e858b">00333</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#ab20ce6079700ed8c24e16e7db29e858b">setEmailSubject</a>($subject)
<a name="l00334"></a>00334                         {
<a name="l00335"></a>00335                                 $this-&gt;emailSubject = (string) $subject;
<a name="l00336"></a>00336                         }
<a name="l00337"></a>00337 
<a name="l00338"></a><a class="code" href="class_contact_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">00338</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>()
<a name="l00339"></a>00339                         {
<a name="l00340"></a>00340                                 $this-&gt;resetBtn-&gt;renderField();
<a name="l00341"></a>00341                                 $this-&gt;submitBtn-&gt;renderField();
<a name="l00342"></a>00342                         }
<a name="l00343"></a>00343 
<a name="l00344"></a><a class="code" href="class_contact_form.html#a5526cb94373c4e23441f0122a1d9db34">00344</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>()
<a name="l00345"></a>00345                         {
<a name="l00346"></a>00346                                 echo <span class="stringliteral">&quot;Contact Us&quot;</span>;
<a name="l00347"></a>00347                         }
<a name="l00348"></a>00348 
<a name="l00349"></a><a class="code" href="class_contact_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8">00349</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>()
<a name="l00350"></a>00350                         {
<a name="l00351"></a>00351                                 <span class="keywordflow">if</span> (preg_match(<span class="stringliteral">&quot;/(%0A|%0D|\n|\r)+/i&quot;</span>, $this-&gt;nameField-&gt;getValue()))
<a name="l00352"></a>00352                                         echo <span class="stringliteral">&quot;&lt;p&gt;We&#39;re sorry, but your form could not be accepted.&lt;/p&gt;\n&quot;</span>;
<a name="l00353"></a>00353 
<a name="l00354"></a>00354                                 <span class="keywordflow">else</span>
<a name="l00355"></a>00355                                 {
<a name="l00356"></a>00356                                         $headers = <span class="stringliteral">&#39;From: &#39;</span>.$this-&gt;nameField-&gt;getValue().<span class="stringliteral">&#39; &lt;&#39;</span>.$this-&gt;emailField-&gt;getValue().<span class="charliteral">&#39;&gt;&#39;</span> . <span class="stringliteral">&quot;\r\n&quot;</span>;
<a name="l00357"></a>00357                                         $headers = <span class="stringliteral">&#39;Reply-To: &#39;</span>.$this-&gt;nameField-&gt;getValue().<span class="stringliteral">&#39; &lt;&#39;</span>.$this-&gt;emailField-&gt;getValue().<span class="charliteral">&#39;&gt;&#39;</span> . <span class="stringliteral">&quot;\r\n&quot;</span>;
<a name="l00358"></a>00358                                         <span class="keywordflow">if</span> (mail($this-&gt;<a class="code" href="class_contact_form.html#a349e30fba510419883ae407dce4775e1">getContact</a>(),
<a name="l00359"></a>00359                                                          $this-&gt;<a class="code" href="class_contact_form.html#ac91b5aa3ce2d40c869f79b6bcb73d2ac">getEmailSubject</a>(),
<a name="l00360"></a>00360                                                          $this-&gt;bodyField-&gt;getValue(),
<a name="l00361"></a>00361                                                          $headers))
<a name="l00362"></a>00362                                                 echo $this-&gt;<a class="code" href="class_contact_form.html#aa78a68df2131bfb02831e24eec041e95">getThankYouText</a>();
<a name="l00363"></a>00363 
<a name="l00364"></a>00364                                         <span class="keywordflow">else</span>
<a name="l00365"></a>00365                                                 echo <span class="stringliteral">&quot;&lt;p&gt;We are sorry for the inconvenience: there was a problem in sending the e-mail.&lt;/p&gt;\n&quot;</span>;
<a name="l00366"></a>00366                                 }
<a name="l00367"></a>00367                         }
<a name="l00368"></a>00368 
<a name="l00369"></a><a class="code" href="class_contact_form.html#aa78a68df2131bfb02831e24eec041e95">00369</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#aa78a68df2131bfb02831e24eec041e95">getThankYouText</a>()
<a name="l00370"></a>00370                         {
<a name="l00371"></a>00371                                 <span class="keywordflow">return</span> $this-&gt;thankYouText;
<a name="l00372"></a>00372                         }
<a name="l00373"></a>00373 
<a name="l00374"></a><a class="code" href="class_contact_form.html#a92eddc7d2a31598b8c5660d1d51d78bf">00374</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a92eddc7d2a31598b8c5660d1d51d78bf">setThankYouText</a>($text)
<a name="l00375"></a>00375                         {
<a name="l00376"></a>00376                                 $this-&gt;thankYouText = (string) $text;
<a name="l00377"></a>00377                         }
<a name="l00378"></a>00378 
<a name="l00379"></a><a class="code" href="class_contact_form.html#a0683eb2bc0783fd8730e712998392887">00379</a>                 <span class="keyword">function</span> <a class="code" href="class_contact_form.html#a0683eb2bc0783fd8730e712998392887">renderHtmlForm</a>()
<a name="l00380"></a>00380                         {
<a name="l00381"></a>00381                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9" title="Executes each field&#39;s verification methods.">validateFields</a>()
<a name="l00382"></a>00382                                         &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00383"></a>00383                                                 $this-&gt;<a class="code" href="class_contact_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>();
<a name="l00384"></a>00384 
<a name="l00385"></a>00385                                 <span class="keywordflow">else</span>
<a name="l00386"></a>00386                                 {
<a name="l00387"></a>00387                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">renderFormBegin</a>();
<a name="l00388"></a>00388                                         echo <span class="stringliteral">&quot;&lt;table&gt;\n&quot;</span>;
<a name="l00389"></a>00389                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00390"></a>00390                                         echo <span class="stringliteral">&quot;&lt;th colspan=\&quot;2\&quot;&gt;\n&quot;</span>;
<a name="l00391"></a>00391                                         $this-&gt;<a class="code" href="class_contact_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>();
<a name="l00392"></a>00392                                         echo <span class="stringliteral">&quot;&lt;/th&gt;\n&quot;</span>;
<a name="l00393"></a>00393                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00394"></a>00394                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00395"></a>00395                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00396"></a>00396                                         $this-&gt;nameField-&gt;renderLabel();
<a name="l00397"></a>00397                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00398"></a>00398                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00399"></a>00399                                         $this-&gt;nameField-&gt;renderField();
<a name="l00400"></a>00400                                         <span class="keywordflow">if</span> ($this-&gt;nameField-&gt;hasErrors()
<a name="l00401"></a>00401                                                 &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00402"></a>00402                                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>($this-&gt;nameField);
<a name="l00403"></a>00403                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00404"></a>00404                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00405"></a>00405                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00406"></a>00406                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00407"></a>00407                                         $this-&gt;emailField-&gt;renderLabel();
<a name="l00408"></a>00408                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00409"></a>00409                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00410"></a>00410                                         $this-&gt;emailField-&gt;renderField();
<a name="l00411"></a>00411                                         <span class="keywordflow">if</span> ($this-&gt;emailField-&gt;hasErrors()
<a name="l00412"></a>00412                                                 &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00413"></a>00413                                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>($this-&gt;emailField);
<a name="l00414"></a>00414                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00415"></a>00415                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00416"></a>00416                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00417"></a>00417                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00418"></a>00418                                         $this-&gt;bodyField-&gt;renderLabel();
<a name="l00419"></a>00419                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00420"></a>00420                                         echo <span class="stringliteral">&quot;&lt;td valign=\&quot;top\&quot;&gt;\n&quot;</span>;
<a name="l00421"></a>00421                                         $this-&gt;bodyField-&gt;renderField();
<a name="l00422"></a>00422                                         <span class="keywordflow">if</span> ($this-&gt;bodyField-&gt;hasErrors()
<a name="l00423"></a>00423                                                 &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00424"></a>00424                                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>($this-&gt;bodyField);
<a name="l00425"></a>00425                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00426"></a>00426                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00427"></a>00427                                         echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00428"></a>00428                                         echo <span class="stringliteral">&quot;&lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;\n&quot;</span>;
<a name="l00429"></a>00429                                         $this-&gt;<a class="code" href="class_contact_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>();
<a name="l00430"></a>00430                                         echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00431"></a>00431                                         echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00432"></a>00432                                         echo <span class="stringliteral">&quot;&lt;/table&gt;\n&quot;</span>;
<a name="l00433"></a>00433                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">renderFormEnd</a>();
<a name="l00434"></a>00434                                 }
<a name="l00435"></a>00435                         }
<a name="l00436"></a>00436         }
<a name="l00437"></a>00437 
<a name="l00438"></a><a class="code" href="class_text_editor_form.html">00438</a> <span class="keyword">class </span><a class="code" href="class_text_editor_form.html">TextEditorForm</a> <span class="keyword">extends</span> <a class="code" href="class_abstract_html_form.html">AbstractHtmlForm</a>
<a name="l00439"></a>00439         {
<a name="l00440"></a>00440                 <span class="keyword">private</span> $filePath;
<a name="l00441"></a>00441                 <span class="keyword">private</span> $overwrite = <span class="keyword">true</span>;
<a name="l00442"></a>00442                 <span class="keyword">private</span> $resetBtn;
<a name="l00443"></a>00443                 <span class="keyword">private</span> $submitBtn;
<a name="l00444"></a>00444                 <span class="keyword">private</span> $textarea;
<a name="l00445"></a>00445 
<a name="l00446"></a><a class="code" href="class_text_editor_form.html#afb215fece0f558c4d5a69d21e0e9081e">00446</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#afb215fece0f558c4d5a69d21e0e9081e">__construct</a>($name = <span class="stringliteral">&quot;text_editor_form&quot;</span>,
<a name="l00447"></a>00447                                                          $method = <span class="stringliteral">&quot;post&quot;</span>,
<a name="l00448"></a>00448                                                          $action = NULL,
<a name="l00449"></a>00449                                                          $filePath = NULL)
<a name="l00450"></a>00450                         {
<a name="l00451"></a>00451                                 <a class="code" href="class_text_editor_form.html#afb215fece0f558c4d5a69d21e0e9081e">parent::__construct</a>($name, $method, $action);
<a name="l00452"></a>00452                                 $this-&gt;<a class="code" href="class_text_editor_form.html#ae1de5c0e7036be4cb0c4b6d091f417d7">setFilePath</a>($filePath);
<a name="l00453"></a>00453 
<a name="l00454"></a>00454                                 $this-&gt;textarea = <span class="keyword">new</span> <a class="code" href="class_text_area.html">TextArea</a>(<span class="stringliteral">&quot;editor&quot;</span>);
<a name="l00455"></a>00455                                 $this-&gt;textarea-&gt;isRequired(<span class="keyword">false</span>);
<a name="l00456"></a>00456                                 $this-&gt;textarea-&gt;setColumns(85);
<a name="l00457"></a>00457                                 $this-&gt;textarea-&gt;setRows(20);
<a name="l00458"></a>00458                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($this-&gt;textarea);
<a name="l00459"></a>00459 
<a name="l00460"></a>00460                                 <span class="comment">//      No need to add these, since they are accessible</span>
<a name="l00461"></a>00461                                 <span class="comment">//       internally and don&#39;t require verification.</span>
<a name="l00462"></a>00462                                 $this-&gt;resetBtn = <span class="keyword">new</span> <a class="code" href="class_reset_button_input.html">ResetButtonInput</a>;
<a name="l00463"></a>00463                                 $this-&gt;resetBtn-&gt;<a class="code" href="class_input_field.html#a7494441b6ed08a391704971873f31432">setValue</a>(<span class="stringliteral">&quot;Revert Changes&quot;</span>);
<a name="l00464"></a>00464 
<a name="l00465"></a>00465                                 $this-&gt;submitBtn = <span class="keyword">new</span> <a class="code" href="class_submit_button_input.html">SubmitButtonInput</a>;
<a name="l00466"></a>00466                                 $this-&gt;submitBtn-&gt;<a class="code" href="class_input_field.html#a7494441b6ed08a391704971873f31432">setValue</a>(<span class="stringliteral">&quot;Save Changes&quot;</span>);
<a name="l00467"></a>00467                         }
<a name="l00468"></a>00468 
<a name="l00469"></a><a class="code" href="class_text_editor_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">00469</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>()
<a name="l00470"></a>00470                         {
<a name="l00471"></a>00471                                 $this-&gt;resetBtn-&gt;renderField();
<a name="l00472"></a>00472                                 $this-&gt;submitBtn-&gt;renderField();
<a name="l00473"></a>00473                         }
<a name="l00474"></a>00474 
<a name="l00475"></a><a class="code" href="class_text_editor_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8">00475</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>()
<a name="l00476"></a>00476                         {
<a name="l00477"></a>00477                                 $flags = ($this-&gt;<a class="code" href="class_text_editor_form.html#a64c4cfb82ef998621995d7323797fef1">getOverwrite</a>()) ? 0 : FILE_APPEND;
<a name="l00478"></a>00478 
<a name="l00479"></a>00479                                 <span class="keywordflow">if</span> (@file_put_contents($this-&gt;<a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>(), $this-&gt;textarea-&gt;getValue(), $flags))
<a name="l00480"></a>00480                                         echo <span class="stringliteral">&quot;&lt;p&gt;Changes have been saved.&lt;/p&gt;\n&quot;</span>;
<a name="l00481"></a>00481                                 <span class="keywordflow">else</span>
<a name="l00482"></a>00482                                         echo <span class="stringliteral">&quot;&lt;p&gt;There was a problem saving changes: please check file or directory permissions.&lt;/p&gt;\n&quot;</span>;
<a name="l00483"></a>00483                         }
<a name="l00484"></a>00484 
<a name="l00485"></a><a class="code" href="class_text_editor_form.html#a5526cb94373c4e23441f0122a1d9db34">00485</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>()
<a name="l00486"></a>00486                         {
<a name="l00487"></a>00487                                 echo <span class="stringliteral">&quot;Editing file &quot;</span>.$this-&gt;getFilePath();
<a name="l00488"></a>00488                         }
<a name="l00489"></a>00489 
<a name="l00490"></a><a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">00490</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>()
<a name="l00491"></a>00491                         {
<a name="l00492"></a>00492                                 <span class="keywordflow">return</span> $this-&gt;filePath;
<a name="l00493"></a>00493                         }
<a name="l00494"></a>00494 
<a name="l00495"></a><a class="code" href="class_text_editor_form.html#ae1de5c0e7036be4cb0c4b6d091f417d7">00495</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#ae1de5c0e7036be4cb0c4b6d091f417d7">setFilePath</a>($filePath)
<a name="l00496"></a>00496                         {
<a name="l00497"></a>00497                                 $this-&gt;filePath = (string) $filePath;
<a name="l00498"></a>00498                         }
<a name="l00499"></a>00499 
<a name="l00500"></a><a class="code" href="class_text_editor_form.html#af4d9bca0d67e6a59196d10feeb2fdfb1">00500</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#af4d9bca0d67e6a59196d10feeb2fdfb1">fileGetContents</a>()
<a name="l00501"></a>00501                         {
<a name="l00502"></a>00502                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>() != <span class="stringliteral">&quot;&quot;</span>)
<a name="l00503"></a>00503                                 {
<a name="l00504"></a>00504                                         <span class="keywordflow">if</span> (file_exists($this-&gt;<a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>()))
<a name="l00505"></a>00505                                         {
<a name="l00506"></a>00506                                                 $this-&gt;textarea-&gt;setValue(file_get_contents($this-&gt;<a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>()));
<a name="l00507"></a>00507                                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00508"></a>00508                                         }
<a name="l00509"></a>00509                                 }
<a name="l00510"></a>00510 
<a name="l00511"></a>00511                                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00512"></a>00512                         }
<a name="l00513"></a>00513 
<a name="l00514"></a><a class="code" href="class_text_editor_form.html#a64c4cfb82ef998621995d7323797fef1">00514</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a64c4cfb82ef998621995d7323797fef1">getOverwrite</a>()
<a name="l00515"></a>00515                         {
<a name="l00516"></a>00516                                 <span class="keywordflow">return</span> $this-&gt;overwrite;
<a name="l00517"></a>00517                         }
<a name="l00518"></a>00518 
<a name="l00521"></a><a class="code" href="class_text_editor_form.html#a516fbaa0a69a147462fb292971fb9ba7">00521</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a516fbaa0a69a147462fb292971fb9ba7" title="Whether or not to overwrite the contents of the file.">setOverwrite</a>($yes)
<a name="l00522"></a>00522                         {
<a name="l00523"></a>00523                                 $this-&gt;overwrite = (bool) $yes;
<a name="l00524"></a>00524                         }
<a name="l00525"></a>00525 
<a name="l00526"></a><a class="code" href="class_text_editor_form.html#a0683eb2bc0783fd8730e712998392887">00526</a>                 <span class="keyword">function</span> <a class="code" href="class_text_editor_form.html#a0683eb2bc0783fd8730e712998392887">renderHtmlForm</a>()
<a name="l00527"></a>00527                 {
<a name="l00528"></a>00528                         <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_text_editor_form.html#a13f3044501ccff40350fb08dc1a278d6">getFilePath</a>() != <span class="stringliteral">&quot;&quot;</span>)
<a name="l00529"></a>00529                         {
<a name="l00530"></a>00530                                 <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9" title="Executes each field&#39;s verification methods.">validateFields</a>()
<a name="l00531"></a>00531                                         &amp;&amp; $this-&gt;<a class="code" href="class_abstract_html_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00532"></a>00532                                                 $this-&gt;<a class="code" href="class_text_editor_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>();
<a name="l00533"></a>00533 
<a name="l00534"></a>00534                                 <span class="keywordflow">if</span> (!$this-&gt;<a class="code" href="class_text_editor_form.html#af4d9bca0d67e6a59196d10feeb2fdfb1">fileGetContents</a>())
<a name="l00535"></a>00535                                         echo <span class="stringliteral">&quot;&lt;div&gt;&lt;b&gt;Warning:&lt;/b&gt; file does not exist&amp;mdash;will attempt to create file after submission.&lt;/div&gt;&quot;</span>;
<a name="l00536"></a>00536 
<a name="l00537"></a>00537                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">renderFormBegin</a>();
<a name="l00538"></a>00538                                 echo <span class="stringliteral">&quot;&lt;table&gt;\n&quot;</span>;
<a name="l00539"></a>00539                                 echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00540"></a>00540                                 echo <span class="stringliteral">&quot;&lt;th&gt;\n&quot;</span>;
<a name="l00541"></a>00541                                 $this-&gt;<a class="code" href="class_text_editor_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>();
<a name="l00542"></a>00542                                 echo <span class="stringliteral">&quot;&lt;/th&gt;\n&quot;</span>;
<a name="l00543"></a>00543                                 echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00544"></a>00544                                 echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00545"></a>00545                                 echo <span class="stringliteral">&quot;&lt;td&gt;\n&quot;</span>;
<a name="l00546"></a>00546                                 $this-&gt;textarea-&gt;renderField();
<a name="l00547"></a>00547                                 echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00548"></a>00548                                 echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00549"></a>00549                                 echo <span class="stringliteral">&quot;&lt;tr&gt;\n&quot;</span>;
<a name="l00550"></a>00550                                 echo <span class="stringliteral">&quot;&lt;td align=\&quot;center\&quot;&gt;\n&quot;</span>;
<a name="l00551"></a>00551                                 $this-&gt;<a class="code" href="class_text_editor_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>();
<a name="l00552"></a>00552                                 echo <span class="stringliteral">&quot;&lt;/td&gt;\n&quot;</span>;
<a name="l00553"></a>00553                                 echo <span class="stringliteral">&quot;&lt;/tr&gt;\n&quot;</span>;
<a name="l00554"></a>00554                                 echo <span class="stringliteral">&quot;&lt;/table&gt;\n&quot;</span>;
<a name="l00555"></a>00555                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">renderFormEnd</a>();
<a name="l00556"></a>00556                         }
<a name="l00557"></a>00557 
<a name="l00558"></a>00558                         <span class="keywordflow">else</span>
<a name="l00559"></a>00559                                 echo <span class="stringliteral">&quot;&lt;div&gt;&lt;b&gt;Error:&lt;/b&gt; no file has been specified.&lt;/div&gt;&quot;</span>;
<a name="l00560"></a>00560                 }
<a name="l00561"></a>00561         }
<a name="l00562"></a>00562 
<a name="l00563"></a><a class="code" href="class_file_upload_form.html">00563</a> <span class="keyword">class </span><a class="code" href="class_file_upload_form.html">FileUploadForm</a> <span class="keyword">extends</span> <a class="code" href="class_abstract_html_form.html">AbstractHtmlForm</a>
<a name="l00564"></a>00564         {
<a name="l00565"></a>00565                 <span class="keyword">private</span> $maxFileSize = 5242880; 
<a name="l00566"></a>00566                 <span class="keyword">private</span> $maxFileSizeField;
<a name="l00567"></a>00567                 <span class="keyword">private</span> $uploadDir;
<a name="l00568"></a>00568                 <span class="keyword">private</span> $uploadField;
<a name="l00569"></a>00569                 <span class="keyword">private</span> $uploadedFile;
<a name="l00570"></a>00570                 <span class="keyword">private</span> $submitBtn;
<a name="l00571"></a>00571 
<a name="l00572"></a><a class="code" href="class_file_upload_form.html#a6ac1042e42ebf2c7b33adfd8c56f7d96">00572</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a6ac1042e42ebf2c7b33adfd8c56f7d96">__construct</a>($name = <span class="stringliteral">&quot;file_upload_form&quot;</span>,
<a name="l00573"></a>00573                                                          $method = <span class="stringliteral">&quot;post&quot;</span>,
<a name="l00574"></a>00574                                                          $action = NULL,
<a name="l00575"></a>00575                                                          $dir = <span class="stringliteral">&quot;./uploads&quot;</span>)
<a name="l00576"></a>00576                         {
<a name="l00577"></a>00577                                 <a class="code" href="class_file_upload_form.html#a6ac1042e42ebf2c7b33adfd8c56f7d96">parent::__construct</a>($name, $method, $action);
<a name="l00578"></a>00578                                 $this-&gt;uploadDir = $dir;
<a name="l00579"></a>00579 
<a name="l00580"></a>00580                                 $this-&gt;maxFileSizeField = <span class="keyword">new</span> <a class="code" href="class_hidden_input.html">HiddenInput</a>(<span class="stringliteral">&quot;MAX_FILE_SIZE&quot;</span>);
<a name="l00581"></a>00581                                 $this-&gt;maxFileSizeField-&gt;setValue($this-&gt;<a class="code" href="class_file_upload_form.html#a10d9f6315579e51033723fa8237c4dc9">getMaxFileSize</a>());
<a name="l00582"></a>00582 
<a name="l00583"></a>00583                                 $this-&gt;uploadField = <span class="keyword">new</span> <a class="code" href="class_file_input.html">FileInput</a>(<span class="stringliteral">&quot;file_upload[]&quot;</span>);
<a name="l00584"></a>00584                                 $this-&gt;uploadField-&gt;setRequired(<span class="keyword">false</span>);
<a name="l00585"></a>00585                                 $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($this-&gt;uploadField);
<a name="l00586"></a>00586 
<a name="l00587"></a>00587                                 <span class="comment">//      No need to add these, since they are accessible</span>
<a name="l00588"></a>00588                                 <span class="comment">//       internally and don&#39;t require verification.</span>
<a name="l00589"></a>00589                                 $this-&gt;submitBtn = <span class="keyword">new</span> <a class="code" href="class_submit_button_input.html">SubmitButtonInput</a>;
<a name="l00590"></a>00590                                 $this-&gt;submitBtn-&gt;<a class="code" href="class_input_field.html#a7494441b6ed08a391704971873f31432">setValue</a>(<span class="stringliteral">&quot;Upload&quot;</span>);
<a name="l00591"></a>00591                         }
<a name="l00592"></a>00592 
<a name="l00593"></a><a class="code" href="class_file_upload_form.html#a5c553574d459166116488f02e86e2133">00593</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a5c553574d459166116488f02e86e2133">addUploadFields</a>($amount = 1)
<a name="l00594"></a>00594                         {
<a name="l00595"></a>00595                                 <span class="keywordflow">for</span> ($i = 0; $i &lt; $amount; ++$i)
<a name="l00596"></a>00596                                 {
<a name="l00597"></a>00597                                         $field = <span class="keyword">new</span> <a class="code" href="class_file_input.html">FileInput</a>($this-&gt;uploadField-&gt;getName());
<a name="l00598"></a>00598                                         $field-&gt;<a class="code" href="class_input_field.html#a9638c6330850635573ea3e75443c4dde">setRequired</a>(<span class="keyword">false</span>);
<a name="l00599"></a>00599                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a328f731535e2ff17d7b86e29d0504a6d">addField</a>($field);
<a name="l00600"></a>00600                                 }
<a name="l00601"></a>00601                         }
<a name="l00602"></a>00602 
<a name="l00603"></a><a class="code" href="class_file_upload_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">00603</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a5bf9832f0bcf25a1bf5a8a044af0fd59">getFormFooter</a>()
<a name="l00604"></a>00604                 {}
<a name="l00605"></a>00605 
<a name="l00606"></a><a class="code" href="class_file_upload_form.html#a5526cb94373c4e23441f0122a1d9db34">00606</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a5526cb94373c4e23441f0122a1d9db34">getFormHeader</a>()
<a name="l00607"></a>00607                 {}
<a name="l00608"></a>00608 
<a name="l00609"></a><a class="code" href="class_file_upload_form.html#a597eefca57ef745962c2c14e3f9a35f5">00609</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>()
<a name="l00610"></a>00610                         {
<a name="l00611"></a>00611                                 <span class="keywordflow">return</span> array_key_exists($this-&gt;uploadField-&gt;getActualName(), $_FILES);
<a name="l00612"></a>00612                         }
<a name="l00613"></a>00613 
<a name="l00614"></a><a class="code" href="class_file_upload_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8">00614</a>                 <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>()
<a name="l00615"></a>00615                         {
<a name="l00616"></a>00616                                 $name = $this-&gt;uploadField-&gt;getActualName();
<a name="l00617"></a>00617                                 <span class="keywordflow">foreach</span> ($_FILES[$name][<span class="stringliteral">&#39;error&#39;</span>] as $key =&gt; $error)
<a name="l00618"></a>00618                                 {
<a name="l00619"></a>00619                                         <span class="keywordflow">switch</span> ($error)
<a name="l00620"></a>00620                                         {
<a name="l00621"></a>00621                                                 <span class="keywordflow">case</span> UPLOAD_ERR_INI_SIZE:
<a name="l00622"></a>00622                                                         $size = ini_get(<span class="stringliteral">&quot;upload_max_filesize&quot;</span>);
<a name="l00623"></a>00623                                                         $sizeMeasure = <span class="stringliteral">&quot;megabytes&quot;</span>;
<a name="l00624"></a>00624 
<a name="l00625"></a>00625                                                         <span class="keywordflow">if</span> (!ctype_digit($size))
<a name="l00626"></a>00626                                                         {
<a name="l00627"></a>00627                                                                 $measure = strtoupper(substr($size, -1));
<a name="l00628"></a>00628                                                                 <span class="keywordflow">if</span> ($measure == <span class="stringliteral">&quot;G&quot;</span>)
<a name="l00629"></a>00629                                                                         $sizeMeasure = <span class="stringliteral">&quot;gigabytes&quot;</span>;
<a name="l00630"></a>00630                                                                 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($measure == <span class="stringliteral">&quot;K&quot;</span>)
<a name="l00631"></a>00631                                                                         $sizeMeasure == <span class="stringliteral">&quot;kilobytes&quot;</span>;
<a name="l00632"></a>00632 
<a name="l00633"></a>00633                                                                 $size = (int) $size;
<a name="l00634"></a>00634                                                         }
<a name="l00635"></a>00635 
<a name="l00636"></a>00636                                                         <span class="keywordflow">else</span>
<a name="l00637"></a>00637                                                                 $size /= 1048576;
<a name="l00638"></a>00638 
<a name="l00639"></a>00639                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: filesize exceeds maximum server upload size of $size $sizeMeasure.&quot;</span>);
<a name="l00640"></a>00640                                                         <span class="keywordflow">break</span>;
<a name="l00641"></a>00641 
<a name="l00642"></a>00642                                                 <span class="keywordflow">case</span> UPLOAD_ERR_FORM_SIZE:
<a name="l00643"></a>00643                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: filesize is bigger than &quot;</span>.round(($this-&gt;<a class="code" href="class_file_upload_form.html#a10d9f6315579e51033723fa8237c4dc9">getMaxFileSize</a>()/1048576), 2).<span class="stringliteral">&quot; megabytes.&quot;</span>);
<a name="l00644"></a>00644                                                         <span class="keywordflow">break</span>;
<a name="l00645"></a>00645 
<a name="l00646"></a>00646                                                 <span class="keywordflow">case</span> UPLOAD_ERR_PARTIAL:
<a name="l00647"></a>00647                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: file was partially uploaded&amp;mdash;sorry for the inconvenience.&quot;</span>);
<a name="l00648"></a>00648                                                         <span class="keywordflow">break</span>;
<a name="l00649"></a>00649 
<a name="l00650"></a>00650                                                 <span class="keywordflow">case</span> UPLOAD_ERR_NO_FILE:
<a name="l00651"></a>00651                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;upload field &quot;</span>.($key+1).<span class="stringliteral">&quot;&lt;/i&gt;: no file was specified.&quot;</span>);
<a name="l00652"></a>00652                                                         <span class="keywordflow">break</span>;
<a name="l00653"></a>00653 
<a name="l00654"></a>00654                                                 <span class="keywordflow">case</span> UPLOAD_ERR_NO_TMP_DIR:
<a name="l00655"></a>00655                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: sorry, there was no place to temporarily upload the file to.&quot;</span>);
<a name="l00656"></a>00656                                                         <span class="keywordflow">break</span>;
<a name="l00657"></a>00657 
<a name="l00658"></a>00658                                                 <span class="keywordflow">case</span> UPLOAD_ERR_CANT_WRITE:
<a name="l00659"></a>00659                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: sorry, there was a problem writing file to disk.&quot;</span>);
<a name="l00660"></a>00660                                                         <span class="keywordflow">break</span>;
<a name="l00661"></a>00661 
<a name="l00662"></a>00662                                                 <span class="keywordflow">case</span> UPLOAD_ERR_EXTENSION:
<a name="l00663"></a>00663                                                         $this-&gt;uploadField-&gt;storeError(<span class="stringliteral">&quot;&lt;b&gt;Error:&lt;/b&gt; &lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt;: file extension not allowed.&quot;</span>);
<a name="l00664"></a>00664                                                         <span class="keywordflow">break</span>;
<a name="l00665"></a>00665 
<a name="l00666"></a>00666                                                 <span class="keywordflow">default</span>:
<a name="l00667"></a>00667                                                         <span class="keywordflow">if</span> (move_uploaded_file($_FILES[$name][<span class="stringliteral">&#39;tmp_name&#39;</span>][$key],
<a name="l00668"></a>00668                                                                                                    $this-&gt;<a class="code" href="class_file_upload_form.html#a4c6d5bc16a2f3fdd5c3e06169f0a57fd">getUploadDir</a>().DIRECTORY_SEPARATOR.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key]))
<a name="l00669"></a>00669                                                                         echo <span class="stringliteral">&quot;&lt;p&gt;&lt;i&gt;&quot;</span>.$_FILES[$name][<span class="stringliteral">&#39;name&#39;</span>][$key].<span class="stringliteral">&quot;&lt;/i&gt; successfully uploaded.&lt;/p&gt;\n&quot;</span>;
<a name="l00670"></a>00670                                                         <span class="keywordflow">break</span>;
<a name="l00671"></a>00671                                         }
<a name="l00672"></a>00672                                 }
<a name="l00673"></a>00673                         }
<a name="l00674"></a>00674 
<a name="l00675"></a><a class="code" href="class_file_upload_form.html#a10d9f6315579e51033723fa8237c4dc9">00675</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a10d9f6315579e51033723fa8237c4dc9">getMaxFileSize</a>()
<a name="l00676"></a>00676                         {
<a name="l00677"></a>00677                                 <span class="keywordflow">return</span> $this-&gt;maxFileSize;
<a name="l00678"></a>00678                         }
<a name="l00679"></a>00679 
<a name="l00680"></a><a class="code" href="class_file_upload_form.html#ae578a4f595e50b29b2ad7bc134dff219">00680</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#ae578a4f595e50b29b2ad7bc134dff219">setMaxFileSize</a>($sizeInBytes)
<a name="l00681"></a>00681                         {
<a name="l00682"></a>00682                                 $this-&gt;maxFileSize = (int) $sizeInBytes;
<a name="l00683"></a>00683                                 $this-&gt;maxFileSizeField-&gt;setValue($this-&gt;maxFileSize);
<a name="l00684"></a>00684                         }
<a name="l00685"></a>00685 
<a name="l00686"></a><a class="code" href="class_file_upload_form.html#a0282b1fa703528a5a142479b4fd5cc5f">00686</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a0282b1fa703528a5a142479b4fd5cc5f">setMimeType</a>($type)
<a name="l00687"></a>00687                         {
<a name="l00688"></a>00688                                 $this-&gt;uploadField-&gt;setMimeType($type);
<a name="l00689"></a>00689                         }
<a name="l00690"></a>00690 
<a name="l00691"></a><a class="code" href="class_file_upload_form.html#a4c6d5bc16a2f3fdd5c3e06169f0a57fd">00691</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a4c6d5bc16a2f3fdd5c3e06169f0a57fd">getUploadDir</a>()
<a name="l00692"></a>00692                         {
<a name="l00693"></a>00693                                 <span class="keywordflow">return</span> $this-&gt;uploadDir;
<a name="l00694"></a>00694                         }
<a name="l00695"></a>00695 
<a name="l00698"></a><a class="code" href="class_file_upload_form.html#a0d09bc8c4a1445f9c2b1df053315e05d">00698</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a0d09bc8c4a1445f9c2b1df053315e05d" title="Set the path of the directory that stores the uploaded files.">setUploadDir</a>($dir)
<a name="l00699"></a>00699                         {
<a name="l00700"></a>00700                                 <span class="comment">// realpath() removes trailing slashes for us.</span>
<a name="l00701"></a>00701                                 <span class="comment">// Cast to string in case realpath() returns false.</span>
<a name="l00702"></a>00702                                 $this-&gt;uploadDir = (string) realpath($dir);
<a name="l00703"></a>00703                         }
<a name="l00704"></a>00704 
<a name="l00705"></a><a class="code" href="class_file_upload_form.html#a0683eb2bc0783fd8730e712998392887">00705</a>                 <span class="keyword">function</span> <a class="code" href="class_file_upload_form.html#a0683eb2bc0783fd8730e712998392887">renderHtmlForm</a>()
<a name="l00706"></a>00706                         {
<a name="l00707"></a>00707                                 <span class="comment">// No need to check if directory exists.</span>
<a name="l00708"></a>00708                                 <span class="keywordflow">if</span> (is_writable($this-&gt;uploadDir))
<a name="l00709"></a>00709                                 {
<a name="l00710"></a>00710                                         <span class="keywordflow">if</span> ($this-&gt;<a class="code" href="class_abstract_html_form.html#afd78a8d9c8a6314882e898d6dc1727d9" title="Executes each field&#39;s verification methods.">validateFields</a>()
<a name="l00711"></a>00711                                                 &amp;&amp; $this-&gt;<a class="code" href="class_file_upload_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00712"></a>00712                                                         $this-&gt;<a class="code" href="class_file_upload_form.html#a16fd2e4964fca2fd2d6ca03cf3653bb8" title="Convenience function called (or should be called) when form passes validation.">formHandler</a>();
<a name="l00713"></a>00713 
<a name="l00714"></a>00714                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a1df576b8d498ce74139bd6aac2248e9f">renderFormBegin</a>();
<a name="l00715"></a>00715                                         $this-&gt;maxFileSizeField-&gt;renderField();
<a name="l00716"></a>00716 
<a name="l00717"></a>00717                                         <span class="keywordflow">if</span> ($this-&gt;uploadField-&gt;hasErrors()
<a name="l00718"></a>00718                                                 &amp;&amp; $this-&gt;<a class="code" href="class_file_upload_form.html#a597eefca57ef745962c2c14e3f9a35f5" title="Check if form has been submitted.">isFormSubmitted</a>())
<a name="l00719"></a>00719                                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#aae089e30bef6c4d08e97b8c041e0ad88">listErrors</a>($this-&gt;uploadField);
<a name="l00720"></a>00720 
<a name="l00721"></a>00721                                         $fields = $this-&gt;<a class="code" href="class_abstract_html_form.html#aff667c8e7e2da76ea9ba77bc12f20027">getFields</a>();
<a name="l00722"></a>00722                                         $count = count($fields);
<a name="l00723"></a>00723                                         <span class="keywordflow">foreach</span> ($fields as $field)
<a name="l00724"></a>00724                                         {
<a name="l00725"></a>00725                                                 $field-&gt;renderField();
<a name="l00726"></a>00726                                                 <span class="keywordflow">if</span> ($count &gt; 1)
<a name="l00727"></a>00727                                                         echo <span class="stringliteral">&quot;&lt;br/&gt;&quot;</span>;
<a name="l00728"></a>00728                                         }
<a name="l00729"></a>00729 
<a name="l00730"></a>00730                                         $this-&gt;submitBtn-&gt;renderField();
<a name="l00731"></a>00731                                         $this-&gt;<a class="code" href="class_abstract_html_form.html#a50cccbf00a00d482fd340abb74c7959a">renderFormEnd</a>();
<a name="l00732"></a>00732                                 }
<a name="l00733"></a>00733 
<a name="l00734"></a>00734                                 <span class="keywordflow">else</span>
<a name="l00735"></a>00735                                         echo <span class="stringliteral">&quot;&lt;div&gt;&lt;b&gt;Error:&lt;/b&gt; the upload directory cannot be written to.&lt;/div&gt;&quot;</span>;
<a name="l00736"></a>00736                         }
<a name="l00737"></a>00737         }
<a name="l00738"></a>00738 
<a name="l00739"></a>00739 <span class="comment">/*      Example usage of ContactForm:</span>
<a name="l00740"></a>00740 <span class="comment"></span>
<a name="l00741"></a>00741 <span class="comment">        $form = new ContactForm;</span>
<a name="l00742"></a>00742 <span class="comment">        $form-&gt;setAction($_SERVER[&#39;PHP_SELF&#39;]);</span>
<a name="l00743"></a>00743 <span class="comment">        $form-&gt;setContact(&quot;admin@localhost&quot;);</span>
<a name="l00744"></a>00744 <span class="comment">        $form-&gt;renderHtmlForm();</span>
<a name="l00745"></a>00745 <span class="comment">*/</span>
<a name="l00746"></a>00746 <span class="comment">/*      Example usage of TextEditorForm</span>
<a name="l00747"></a>00747 <span class="comment"></span>
<a name="l00748"></a>00748 <span class="comment">        $form = new TextEditorForm;</span>
<a name="l00749"></a>00749 <span class="comment">        $form-&gt;setFilePath(&quot;/path/to/file.txt&quot;);</span>
<a name="l00750"></a>00750 <span class="comment">        $form-&gt;renderHtmlForm();</span>
<a name="l00751"></a>00751 <span class="comment">*/</span>
<a name="l00752"></a>00752 <span class="comment">/*      Example usage of FileUploadForm:</span>
<a name="l00753"></a>00753 <span class="comment"></span>
<a name="l00754"></a>00754 <span class="comment">        $form = new FileUploadForm;</span>
<a name="l00755"></a>00755 <span class="comment">        $form-&gt;setEncType(&quot;multipart/form-data&quot;);</span>
<a name="l00756"></a>00756 <span class="comment">        $form-&gt;setUploadDir(&quot;/home/reeko5k/www/uploads/&quot;);</span>
<a name="l00757"></a>00757 <span class="comment">//      $form-&gt;addUploadFields(2);</span>
<a name="l00758"></a>00758 <span class="comment">        $form-&gt;renderHtmlForm();</span>
<a name="l00759"></a>00759 <span class="comment">*/</span>
<a name="l00760"></a>00760 
<a name="l00761"></a>00761 ?&gt;
</pre></div></div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="formtypes_8formgenerator_8php.html">formtypes.formgenerator.php</a>      </li>

    <li class="footer">Generated on Mon Aug 6 2012 13:10:01 for TFCMS by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
